package com.yunke.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 用户聊天会话实体类
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@TableName("yunke_user_chat")
@Schema(description = "用户聊天会话")
public class YunkeUserChat {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 聊天室ID（唯一标识）
     */
    @Schema(description = "聊天室ID")
    private String chatId;

    /**
     * 用户A的ID
     */
    @Schema(description = "用户A的ID")
    private Long userAId;

    /**
     * 用户B的ID
     */
    @Schema(description = "用户B的ID")
    private Long userBId;

    /**
     * 聊天类型：1-单聊 2-群聊
     */
    @Schema(description = "聊天类型：1-单聊 2-群聊")
    private Integer chatType;

    /**
     * 聊天状态：1-正常 2-已删除 3-已屏蔽
     */
    @Schema(description = "聊天状态：1-正常 2-已删除 3-已屏蔽")
    private Integer status;

    /**
     * 最后一条消息内容
     */
    @Schema(description = "最后一条消息内容")
    private String lastMessage;

    /**
     * 最后一条消息类型：1-文字 2-图片 3-语音 4-位置 5-系统消息
     */
    @Schema(description = "最后一条消息类型")
    private Integer lastMessageType;

    /**
     * 最后一条消息时间
     */
    @Schema(description = "最后一条消息时间")
    private Long lastMessageTime;

    /**
     * 最后一条消息发送者ID
     */
    @Schema(description = "最后一条消息发送者ID")
    private Long lastMessageSenderId;

    /**
     * 用户A未读消息数
     */
    @Schema(description = "用户A未读消息数")
    private Integer userAUnreadCount;

    /**
     * 用户B未读消息数
     */
    @Schema(description = "用户B未读消息数")
    private Integer userBUnreadCount;

    /**
     * 用户A是否置顶：0-否 1-是
     */
    @Schema(description = "用户A是否置顶")
    private Integer userAIsTop;

    /**
     * 用户B是否置顶：0-否 1-是
     */
    @Schema(description = "用户B是否置顶")
    private Integer userBIsTop;

    /**
     * 用户A是否免打扰：0-否 1-是
     */
    @Schema(description = "用户A是否免打扰")
    private Integer userAIsMute;

    /**
     * 用户B是否免打扰：0-否 1-是
     */
    @Schema(description = "用户B是否免打扰")
    private Integer userBIsMute;

    /**
     * 用户A删除时间（用于清空聊天记录）
     */
    @Schema(description = "用户A删除时间")
    private Long userADeleteTime;

    /**
     * 用户B删除时间（用于清空聊天记录）
     */
    @Schema(description = "用户B删除时间")
    private Long userBDeleteTime;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Long createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Long updateTime;
} 